﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using vudu.EnlaceDatos.SqlServer;

namespace vudu.Logica.Clases
{
    public class Prelacion
    {
        private Materia _miMateriaPensum;
        private int _semestreMateriaPensum;
        private int _creditoMateriaPensum;
        private List<Materia> _prelacionMateriaPensum;

        #region Constructor
        public Prelacion()
        {
            Prelaciones = new List<Materia>();
        }

        public Prelacion(Materia miMateriaPensum, int semestreMateriaPensum, int creditoMateriaPensum)
        {
            MiMateriaPensum = miMateriaPensum;
            SemestreMateriaPensum = semestreMateriaPensum;
            CreditoMateriaPensum = creditoMateriaPensum;
        }  
        #endregion

        #region Getters & Setters

        public Materia MiMateriaPensum
        {
            get 
            { 
                return _miMateriaPensum; 
            }
            set
            {
                _miMateriaPensum = value;
            }
        }
        
        public int SemestreMateriaPensum
        {
            get 
            {
                return _semestreMateriaPensum; 
            }
            set 
            {
                _semestreMateriaPensum = value; 
            }
        }

        public int CreditoMateriaPensum
        {
            get
            {
                return _creditoMateriaPensum;
            }
            set
            {
                _creditoMateriaPensum = value;
            }
        }
               

        public List<Materia> Prelaciones
        {
            get 
            {
                return _prelacionMateriaPensum; 
            }
            set 
            {
                _prelacionMateriaPensum = value; 
            }
        }

        #endregion

        #region Metodos de Prelacion
        public int CalcularNumeroMateriaPrelacion()
        {
            int numMateria = 0;
            
            return numMateria;
        }

        public bool VerificarMateriaPrelacion(Materia miMateria)
        {
            bool verificacionMateria = true;
            
            return verificacionMateria;
        }

        public void AgregarMateria(Materia miMateria)
        {
        }

        public void EliminarMateriaGrafo(Materia miMateria)
        {
        }

        public bool AgregarListaPrelacion (Materia miMateria)
        {
            bool confirmacion = true;
            
            return confirmacion;
        }

        public bool EliminarListaPrelacion (Materia miMateria)
        {
            bool confirmacion = true;
            return confirmacion;
        }

        public bool ModificarListaPrelacion(Materia miMateria)
        {
            bool confirmacion = true;
            
            return confirmacion;
        }

        public List<Materia> MostrarListaPrelacion(Pensum miPensum, Materia miMateria)
        {
            SqlServerPensum sqlServerPensum = new SqlServerPensum();
            return sqlServerPensum.materiasNecesarias(miPensum.IdPensum, miMateria.Nombre);


        }
        #endregion
    }
}